1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to access to bit values within data words stored in a memory.
2. Description of the Prior Art
It is known to provide data processing systems with memories for storing data values to be manipulated. Such memories are typically arranged to store data values as 8-bit byte values. These 8-bit byte values (or greater) are written together and read together.
Within many data processing systems, there is a requirement to store data values that are smaller than one byte in length. Using a full byte of storage within a memory to store only one or a few bits of data is disadvantageously inefficient in terms of circuit area, cost, power consumption and in other ways. Furthermore, many non-memory devices require access to specific bits within control and status registers.
In order to reduce memory storage requirements it is known to store multiple data values within a single byte of memory storage. However, a disadvantage of this approach is that when it is desired to write or read such a data value from within a byte, additional processing steps are required to extract the portion of the data value concerned or to insert the portion of the data value concerned into the byte being accessed within the memory. These extra instructions disadvantageously slow execution and increase code size.
One known technique for addressing this problem is to add special purpose instructions for inserting certain bits or extracting certain bits into a byte or word value stored within a memory. However, the instruction bits space consumed by these special purpose instructions is a disadvantage. Furthermore, these are usually instructions used in addition to load and store so extra processing time is required. These extra instructions, whether separate instructions or part of the load and store, can still create read-modify-write problems due to interrupts splitting the read from the modify and then write.
Another known approach is that of the SHARC processor in which the same underlying memory can be accessed as either 16-bit, 32-bit or 40-bit words.
A further known approach is the Intel 8051 which provides a bit memory, but lacks the flexibility of a normal memory system.